/*
 * LogicalLink.scala
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.squela

trait LogicalLink {
    def &&(link: LogicalLink): LogicalLink = new &&(this, link)
    def AND(link: LogicalLink): LogicalLink = this.&&(link)
    def ||(link: LogicalLink): LogicalLink = new ||(this, link)
    def OR(link: LogicalLink): LogicalLink = this.||(link)
}

class LogicalOp extends LogicalLink
case class &&(leftLink: LogicalLink, rightLink: LogicalLink) extends LogicalOp
case class ||(leftLink: LogicalLink, rightLink: LogicalLink) extends LogicalOp
